/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cube.estructura.per;

import cube.estructura.obj.Servicio;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Leonardo
 */
public class ServicioPer
{  
   public static Servicio obtenerServicio(Connection con, long xIdServicio) throws Exception
   {
        Servicio objServicio = new Servicio();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                       "from SERVICIO "+
                                                         "where ID_SERVICIO=? ");
            st.setLong(1, xIdServicio);

            ResultSet resultado = st.executeQuery();

            if(resultado.next())
            {
                objServicio.setIdServicio(resultado.getLong("ID_SERVICIO"));
                objServicio.setNombre(resultado.getString("NOMBRE"));
                objServicio.setImagen(resultado.getString("IMAGEN"));
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return objServicio;
   }

   public static boolean existeServicio(Connection con, long xIdServicio) throws Exception
   {
        try
        {
            PreparedStatement st=con.prepareStatement("select count(*) as EXISTE " +
                                                      "from SERVICIO " +
                                                         "where ID_SERVICIO=? ");

            st.setLong(1, xIdServicio);

            ResultSet resultado = st.executeQuery();

            if (resultado.next())
            {
                if (resultado.getInt("EXISTE")==0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return false;
   }

   public static ArrayList<Servicio> obtenerColeccionServicio(Connection con) throws Exception
   {
        ArrayList colServicio = new ArrayList();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                      "from SERVICIO");

            ResultSet resultado = st.executeQuery();

            while (resultado.next())
            {
                Servicio objServicio = new Servicio();

                objServicio.setIdServicio(resultado.getLong("ID_SERVICIO"));
                objServicio.setNombre(resultado.getString("NOMBRE"));
                objServicio.setImagen(resultado.getString("IMAGEN"));

                colServicio.add(objServicio);
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return colServicio;
    }

    public static void altaServicio(Connection con, Servicio xObjServicio) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("insert into SERVICIO " +
                                                      "values (?,?,?)");

            st.setLong(1, xObjServicio.getIdServicio());
            st.setString(2, xObjServicio.getNombre());
            st.setString(3, xObjServicio.getImagen());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void bajaServicio(Connection con, Servicio xObjServicio) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("delete from SERVICIO " +
                                                         "where ID_SERVICIO=? ");

            st.setLong(1, xObjServicio.getIdServicio());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void modificaServicio(Connection con, Servicio xObjServicio) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("update SERVICIO " +
                                                      "set NOMBRE=?, "+
                                                      "IMAGEN=? "+
                                                         "where ID_SERVICIO=? ");

            st.setString(1, xObjServicio.getNombre());
            st.setString(2, xObjServicio.getImagen());
            st.setLong(3, xObjServicio.getIdServicio());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }
}
